package com.cos.lession60.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.util.Date;

/**
 * @author: COS
 * @time: 2022/3/15 9:22
 * @description:
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@TableName  //Emp 类名和表名一致 (数据库不区分大小写) @TableName("E_mp") 表名叫e_mp
public class Emp extends Model<Emp> {
    /**
     *标识下面的属性就是数据库表中的对应的主键字段,
     * 什么都不写就代表属性名和字段名一致,可以使用注解的value属性设置字段的名
     *
     * IdType.AUTO 使用数据库的自增长主键策略
     */
    @TableId(value = "eno",type = IdType.AUTO)
    private Integer eno;
    private String ename;
    private String esex;
    private Double salary;
    private String pwd;
    private Integer dno;
    // mybatisplus 默认把bornDate 认为在数据库中的字段是_分隔
    //属性和数据库字段的映射
    @TableField("bornDate")
    private Date bornDate;
    private String phone;
    //这个属性不存在数据库中的字段
    @TableField(exist = false)
    private Dept dept;

    public Emp(String ename, String esex, Double salary, String pwd, Integer dno, Date bornDate, String phone) {
        this.ename = ename;
        this.esex = esex;
        this.salary = salary;
        this.pwd = pwd;
        this.dno = dno;
        this.bornDate = bornDate;
        this.phone = phone;
    }
}
